/*	
 *				
 *					ISNW ---- It is a war.It is not warcraft!
 *
 *
 *					Author:					zhoukeli(haxixi_keli)
 *					Filename:				IParticleSystemSceneNode.h
 *					CreateTime:				2008/12/30
 *					ModifyTime:				2008/12/30
 *
 */

#ifndef __ISNW_I_PARTICLE_SYSTEM_SCENE_NODE_H__
#define __ISNW_I_PARTICLE_SYSTEM_SCENE_NODE_H__

#include "ISceneNode.h"
#include "ISceneManager.h"
#include "IParticalEmitter.h"
#include "isnwMaterial.h"
#include "IParticleAffector.h"
#include "dimension2d.h"

namespace ISNW
{
namespace scene
{
	class IParticleSystemSceneNode : public ISceneNode
	{
	public:
		IParticleSystemSceneNode(ISceneManager* sm,ISceneNode* parent,s32 id,core::vector3df pos,
			core::vector3df rotate,core::vector3df scale)
			:ISceneNode(sm,parent,id,true,pos,rotate,scale){}

	public:

		virtual void doParticleSystem(u32 Time) = 0;

		virtual void setEmitter(IParticleEmitter* em) = 0;

		virtual void addAffecor(IParticleAffector* af) = 0;

		virtual void setMaterial(video::material m) = 0;

		virtual void setParticleSize(core::dimention2df size) = 0;


		virtual IParticleEmitter* createBoxEmitter(core::aabbox3df box,core::vector3df dir,u32 MPPS,u32 mpps,u32 MCOLOR,u32 mcolor,
			u32 angle,u32 life) = 0;

	};
} // end namespace scene
} // end namespace ISNW

#endif